package com.agileboot.attendance.domain.settlement.dto;

import com.agileboot.attendance.domain.settlement.enums.SettlementPeriodType;
import com.agileboot.attendance.domain.settlement.enums.SettlementStatus;
import com.agileboot.common.core.page.PageQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

/**
 * 结算单查询对象
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("结算单查询对象")
public class SettlementBillQuery extends PageQuery {

    @ApiModelProperty(value = "结算单号")
    private String billNo;

    @ApiModelProperty(value = "项目ID")
    private Long projectId;

    @ApiModelProperty(value = "订单ID")
    private Long orderId;

    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;

    @ApiModelProperty(value = "结算周期类型")
    private SettlementPeriodType periodType;

    @ApiModelProperty(value = "结算开始日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate startDate;

    @ApiModelProperty(value = "结算结束日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDate endDate;

    @ApiModelProperty(value = "结算单状态")
    private SettlementStatus status;
}
